package com.rzcode.coinex.kernel.service.impl;

import com.querydsl.core.types.Predicate;
import com.rzcode.coinex.kernel.common.response.R;
import com.rzcode.coinex.kernel.dao.entity.Coin;
import com.rzcode.coinex.kernel.dao.entity.Member;
import com.rzcode.coinex.kernel.dao.entity.MemberWallet;
import com.rzcode.coinex.kernel.service.MemberWalletService;
import org.mapstruct.Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.List;

@Mapper
@Service
public class MemberWalletServiceImpl implements MemberWalletService {
    @Autowired
    private SMSProvider smsProvider;
    @Autowired
    private MemberDao memberDao;
    @Autowired
    private MemberWalletDao memberWalletDao;
    @Autowired
    private CoinDao coinDao;
    @Autowired
    private MemberTransactionService transactionService;
    @Autowired
    private MemberDepositDao depositDao;
    @Autowired(required = false)
    private ESUtils esUtils;

    @Override
    public MemberWallet save(MemberWallet wallet) {
        return null;
    }

    @Override
    public MemberWallet findByOtcCoinAndMemberId(OtcCoin coin, long memberId) {
        return null;
    }

    @Override
    public R recharge(MemberWallet wallet, BigDecimal amount) {
        return null;
    }

    @Override
    public R recharge(Coin coin, String address, BigDecimal amount, String txid) {
        return null;
    }

    @Override
    public R recharge2(Long userId, Coin coin, String address, BigDecimal amount, String txid) {
        return null;
    }

    @Override
    public MemberWallet findByCoinAndAddress(Coin coin, String address) {
        return null;
    }

    @Override
    public MemberWallet findByCoinAndMember(Coin coin, Member member) {
        return null;
    }

    @Override
    public MemberWallet findByCoinUnitAndMemberId(String coinUnit, Long memberId) {
        return null;
    }

    @Override
    public MemberWallet findByCoinAndMemberId(Coin coin, Long memberId) {
        return null;
    }

    @Override
    public List<MemberWallet> findAllByMemberId(Member member) {
        return null;
    }

    @Override
    public List<MemberWallet> findAllByMemberId(Long memberId) {
        return null;
    }

    @Override
    public MessageResult freezeBalance(MemberWallet memberWallet, BigDecimal amount) {
        return null;
    }

    @Override
    public R thawBalance(MemberWallet memberWallet, BigDecimal amount) {
        return null;
    }

    @Override
    public void transfer(Order order, int ret) throws InformationExpiredException {

    }

    @Override
    public void transferAdmin(Order order, int ret) throws InformationExpiredException {

    }

    @Override
    public void trancerDetail(Order order, long sellerId, long buyerId) throws InformationExpiredException {

    }

    @Override
    public int deductBalance(MemberWallet memberWallet, BigDecimal amount) {
        return 0;
    }

    @Override
    public List<MemberWallet> findAll() {
        return null;
    }

    @Override
    public List<MemberWallet> findAllByCoin(Coin coin) {
        return null;
    }

    @Override
    public boolean lockWallet(Long uid, String unit) {
        return false;
    }

    @Override
    public boolean unlockWallet(Long uid, String unit) {
        return false;
    }

    @Override
    public MemberWallet findOneByCoinNameAndMemberId(String coinName, long memberId) {
        return null;
    }

    @Override
    public Page<MemberWalletDTO> joinFind(List<Predicate> predicates, QMember qMember, QMemberWallet qMemberWallet, PageModel pageModel) {
        return null;
    }

    @Override
    public BigDecimal getAllBalance(String coinName) {
        return null;
    }

    @Override
    public MemberDeposit findDeposit(String address, String txid) {
        return null;
    }

    @Override
    public MemberDeposit findDepositByTxid(String txid) {
        return null;
    }

    @Override
    public void decreaseFrozen(Long walletId, BigDecimal amount) {

    }

    @Override
    public void increaseBalance(Long walletId, BigDecimal amount) {

    }

    @Override
    public int unfreezeLess() {
        return 0;
    }

    @Override
    public int unfreezeMore() {
        return 0;
    }

    @Override
    public int dropWeekTable(int weekDay) {
        return 0;
    }

    @Override
    public int createWeekTable(int weekDay) {
        return 0;
    }

    @Override
    public BigDecimal getWalletBalanceAmount(String coinId, int week) {
        return null;
    }

    @Override
    public List<MemberWallet> geteveryBHB(String coinName, int week) {
        return null;
    }

    @Override
    public int updateTeamWallet(BigDecimal teamBalance, long teamId) {
        return 0;
    }

    @Override
    public MemberWallet getMemberWalletByCoinAndMemberId(String coinId, long memberId) {
        return null;
    }

    @Override
    public int updateByMemberIdAndCoinId(long memberId, String coinId, BigDecimal balance) {
        return 0;
    }

    @Override
    public int increaseBalanceForBHB(BigDecimal mineAmount, Long memberId) {
        return 0;
    }

    @Override
    public List<MemberWallet> findUnfreezeGTE() {
        return null;
    }

    @Override
    public List<MemberWallet> findUnfreezeLTE() {
        return null;
    }

    @Override
    public int updateBalanceByIdAndAmount(long id, double amount) {
        return 0;
    }

    @Override
    public void increaseFrozen(Long id, BigDecimal amount) {

    }

    @Override
    public void increaseToRelease(Long id, BigDecimal amount) {

    }

    @Override
    public void decreaseToRelease(Long id, BigDecimal amount) {

    }
}
